gusucode.com > MATLAB与控制系统仿真实践 源代码 > MATLAB与控制系统仿真实践 源代码/第四章/eg4_8/distri_method.m

    function remainP=distri_method(a)
 b=sort(a);
xm=getXm(b);
fl=b(1:ceil(length(b)/2));
if rem(length(b),2)==0
    fl=[fl xm];
end
fll=getXm(fl);
 
if rem(length(b),2)~=0
    fu=b(ceil(length(b)/2):length(b));
else
    fu=[xm,b((length(b)/2+1):length(b))];
end
fuu=getXm(fu);
 
remainP=b(find(abs(b)<=2*(fuu-fll)));
 
function xm=getXm(b)
if rem(length(b),2)~=0
    index=ceil(length(b)/2);
    xm=b(index);
else
    index=length(b)/2;
    xm=(b(index)+b(index+1))/2;
end